Release 10.1A: OpenEdge Development:
AppBuilder


Preface

This Preface contains the following sections:

Purpose

This guide provides a basic introduction to using AppBuilder for Rapid Application Prototyping/Development (RAP/RAD).

Audience

Database programmers who appreciate the time and energy advantages of using WYSIWYG layout editors for RAP/RAD. This guide presumes that you understand programming in general, though it does not require that you know the Progress® 4GL specifically. You can create simple applications using AppBuilder alone, but you will find it hard to do sophisticated work without at least some programming ability with the Progress® 4GL.

Organization

Chapter 1 "Introduction"

Introduces basic terminology and concepts that are important to understand when working with AppBuilder.

Chapter 2 "AppBuilder Interface"

Walks through the user-interface elements apart from the common dialog boxes, which are collected together in Appendix A.

Chapter 3 "Organizer Objects"

Describes objects that integrate smaller objects functionally or visually. Organizer objects include Windows, Dialog Boxes, Frames, and even the Rectangle.

Chapter 4 "Data-Access Objects"

Describes objects that help read and write the logical database. These range from the basic Query object through the powerful SmartBusinessObject.

Chapter 5 "Data-Display/Capture Objects"

Describes the many objects that you can use to present the user with information from the data stream, and capture both changes and new data. They range from powerful SmartObjects to the simplest boolean Toggle Box.

Chapter 6 "Data-Communication Objects"

Describes the transformation and communication objects you can use to create, send, receive, and process data messages.

Chapter 7 "Control Objects"

Describes the few objects that provide a nearly-pure control function: SmartToolbar, SmartPanels, and the lowly Pushbutton.

Chapter 8 "Other Objects"

Describes those few objects that seem not to fit well elsewhere: Static Text and Image objects, for example.

Appendix A, "Frequently Used Dialogs"

Describes the standard dialogs that you will encounter over and over again, nearly unchanged regardless of context.

Appendix B, "Multiple Layouts"

Describes how to create, from a single code base, layouts that vary in appearance across platforms and contexts.

Appendix C, "Customizing AppBuilder"

Describes ways you can change AppBuilder itself so that it will more closely meet your needs.

Using this manual

Unless you are familiar with layout or graphics editors, begin by browsing Chapter 1, "Introduction," and studying Chapter 2, " AppBuilder Interface." Then experiment with some trial work of your own. Use the material from Chapter 3, "Organizer Objects," onward mainly as a convenient reference.

Typographical conventions

This manual uses the following typographical conventions:

Convention
Description
Bold
Bold typeface indicates commands or characters the user types, or the names of user interface elements.
Italic
Italic typeface indicates the title of a document, provides emphasis, or signifies new terms.
SMALL, BOLD CAPITAL LETTERS
Small, bold capital letters indicate OpenEdge™ key functions and generic keyboard keys; for example, GET and CTRL.
KEY1-KEY2
A hyphen between key names indicates a simultaneous key sequence: you press and hold down the first key while pressing the second key. For example, CTRL-X.
KEY1 KEY2
A space between key names indicates a sequential key sequence: you press and release the first key, then press another key. For example, ESCAPE H.
Syntax:
Fixed width 
A fixed-width font is used in syntax statements, code examples, and for system output and filenames.
Fixed-width italics
Fixed-width italics indicate variables in syntax statements.
Fixed-width bold
Fixed-width bold indicates variables with special emphasis.
UPPERCASE 
fixed width 
Uppercase words are Progress® 4GL language keywords. Although these always are shown in uppercase, you can type them in either uppercase or lowercase in a procedure.
Period (.)
or
colon (:)
All statements except DO, FOR, FUNCTION, PROCEDURE, and REPEAT end with a period. DO, FOR, FUNCTION, PROCEDURE, and REPEAT statements can end with either a period or a colon.
[ ]
Large brackets indicate the items within them are optional.
[ ]
Small brackets are part of the Progress 4GL language.
{ }
Large braces indicate the items within them are required. They are used to simplify complex syntax diagrams.
{ }
Small braces are part of the Progress 4GL language. For example, a called external procedure must use braces when referencing arguments passed by a calling procedure.
|
A vertical bar indicates a choice.
...
Ellipses indicate repetition: you can choose one or more of the preceding items.

Examples of syntax descriptions

In this example, ACCUM is a keyword, and aggregate and expression are variables:

ACCUM aggregate expression  

FOR is one of the statements that can end with either a period or a colon, as in this example:

FOR EACH Customer: 
  DISPLAY Name. 
END. 

In this example, STREAM stream, UNLESS-HIDDEN, and NO-ERROR are optional:

DISPLAY [ STREAM stream ] [ UNLESS-HIDDEN ] [ NO-ERROR ] 

In this example, the outer (small) brackets are part of the language, and the inner (large) brackets denote an optional item:

INITIAL [ constant [ , constant ] ] 

A called external procedure must use braces when referencing compile-time arguments passed by a calling procedure, as shown in this example:

{ &argument-name } 

In this example, EACH, FIRST, and LAST are optional, but you can choose only one of them:

PRESELECT [ EACH | FIRST | LAST ] record-phrase 

In this example, you must include two expressions, and optionally you can include more. Multiple expressions are separated by commas:

MAXIMUM ( expression , expression [ , expression ] ... ) 

In this example, you must specify MESSAGE and at least one expression or SKIP [ (n) ], and any number of additional expression or SKIP [ ( n ) ] is allowed:

MESSAGE { expression | SKIP [ ( n ) ] } ... 

In this example, you must specify {include-file, then optionally any number of argument or &argument-name = "argument-value", and then terminate with }:

{ include-file 
    [ argument | &argument-name = "argument-value" ] ... } 

Long syntax descriptions split across lines

Some syntax descriptions are too long to fit on one line. When syntax descriptions are split across multiple lines, groups of optional and groups of required items are kept together in the required order.

In this example, WITH is followed by six optional items:

Syntax
WITH [ ACCUM max-length ] [ expression DOWN ] 
  [ CENTERED ] [ n COLUMNS ] [ SIDE-LABELS ]
  [ STREAM-IO ] 

Complex syntax descriptions with both required and optional elements

Some syntax descriptions are too complex to distinguish required and optional elements by bracketing only the optional elements. For such syntax, the descriptions include both braces (for required elements) and brackets (for optional elements).

In this example, ASSIGN requires either one or more field entries or one record. Options available with field or record are grouped with braces and brackets:

Syntax
ASSIGN {   { [ FRAME frame ] 
                { field [ = expression ] }
                [ WHEN expression ]
            } ...
         |  { record [ EXCEPT field ... ] }
       } 

OpenEdge messages

OpenEdge displays several types of messages to inform you of routine and unusual occurrences:

After displaying a message, OpenEdge proceeds in one of several ways:

OpenEdge messages end with a message number in parentheses. In this example, the message number is 200:

** Unknown table name table. (200) 

If you encounter an error that terminates OpenEdge, note the message number before restarting.

Obtaining more information about OpenEdge messages

On Windows platforms, use OpenEdge online help to obtain more information about OpenEdge messages. Many OpenEdge tools include the following Help menu options to provide information about messages:


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095